package main

func main() {
	name := "tom"
	hi(name)
	a, b := "1", "2"

	println(swap(a, b))

	p(hi)

	t_seq := seq()

	println(t_seq())
	println(t_seq())
}

// func 函数名(参数列表) [返回值类型]
func hi(name string) {
	println("hi ," + name)
}

func swap(x, y string) (string, string) {
	return y, x
}

// 使用函数作为参数需要先声明函数类型
type p_func func(string)

func p(h p_func) {
	h("li")
}

// 闭包 / 匿名函数
func seq() func() int { // 返回类型为函数
	i := 0
	return func() int {
		i += 1
		return i
	}
}
